home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / x11 / strategy / shanghai.000 / shanghai / shanghai-1.0 / shanghai.c < prev    next >
C/C++ Source or Header  |  1995-05-30  |  6KB  |  216 lines

  1. #include "board.h"
  2. #include "forms.h"
  3. #include "gui.h"
  4. #include "shanghai.h"
  5.  
  6. int win_count = 0;
  7.  
  8. #ifdef DEBUGXEVENTS
  9. void print_xevent(XEvent *event)
  10. {
  11.   /* This function is not yet fully implemented! Add further messages
  12.      as needed */
  13.   static char *eventNames[LASTEvent] = {"","",
  14.     "KeyPress","KeyRelease","ButtonPress","ButtonRelease","MotionNotify",
  15.     "EnterNotify","LeaveNotify","FocusIn","FocusOut","KeymapNotify",
  16.     "Expose","GraphicsExpose","NoExpose","VisibilityNotify","CreateNotify",
  17.     "DestroyNotify","UnmapNotify","MapNotify","MapRequest","ReparentNotify",
  18.     "ConfigureNotify","ConfigureRequest","GravityNotify","ResizeRequest",
  19.     "CirculateNotify","CirculateRequest","PropertyNotify","SelectionClear",
  20.     "SelectionRequest","SelectionNotify","ColormapNotify","ClientMessage",
  21.     "MappingNotify" };
  22.   static char *modeNames[8] = {
  23.     "Normal","Grab","Ungrab","WhileGrabbed"};
  24.   static char *detailNames[8] = {
  25.     "Ancestor","Virtual","Inferior","Nonlinear","NonlinearVirtual","Pointer",
  26.     "PointerRoot","DetailNone"};
  27.  
  28. #define PRXEVSTD(e,t) \
  29.   fprintf(stderr,"%-18s(serial: 0x%lx, %sdisplay: 0x%lx, win: 0x%lx,", \
  30.       eventNames[(e)->t.type],(e)->t.serial, \
  31.       (e)->t.send_event ? "send_event, " : "", \
  32.       (unsigned long)(e)->t.display,(e)->xkey.window)
  33. #define XNEWLINE "\n                   "
  34.  
  35.   switch (event->type) {
  36.   case KeyPress:
  37.   case KeyRelease:
  38.     PRXEVSTD(event,xkey);
  39.     fprintf(stderr,XNEWLINE
  40.         "root: 0x%lx, subwin: 0x%lx, time: 0x%lx,"XNEWLINE
  41.         "pos(%d/%d), pos_root(%d/%d), state: 0x%x,"XNEWLINE
  42.         "keycode: 0x%x%s\n",
  43.         event->xkey.root,event->xkey.subwindow,event->xkey.time,
  44.         event->xkey.x,event->xkey.y,event->xkey.x_root,event->xkey.y_root,
  45.         event->xkey.state,event->xkey.keycode,event->xkey.same_screen ?
  46.         ", same_screen" : "");
  47.     break;
  48.   case ButtonPress:
  49.   case ButtonRelease:
  50.     PRXEVSTD(event,xbutton);
  51.     fprintf(stderr,XNEWLINE
  52.         "root: 0x%lx, subwin: 0x%lx, time: 0x%lx,"XNEWLINE
  53.         "pos(%d/%d), pos_root(%d/%d), state: 0x%x,"XNEWLINE
  54.         "button: %d%s\n",
  55.         event->xbutton.root,event->xbutton.subwindow,event->xbutton.time,
  56.         event->xbutton.x,event->xbutton.y,event->xbutton.x_root,
  57.         event->xbutton.y_root,event->xbutton.state,
  58.         event->xbutton.button,event->xbutton.same_screen ?
  59.         ", same_screen" : "");
  60.     break;
  61.   case MotionNotify:
  62.     PRXEVSTD(event,xmotion);
  63.     fprintf(stderr,XNEWLINE
  64.         "root: 0x%lx, subwin: 0x%lx, time: 0x%lx,"XNEWLINE
  65.         "pos(%d/%d), pos_root(%d/%d), state: 0x%x,"XNEWLINE
  66.         "Notify%s%s\n",
  67.         event->xmotion.root,event->xmotion.subwindow,event->xmotion.time,
  68.         event->xmotion.x,event->xmotion.y,event->xmotion.x_root,
  69.         event->xmotion.y_root,event->xmotion.state,event->xmotion.is_hint ?
  70.         "Hint" : "Normal",event->xmotion.same_screen ?
  71.         ", same_screen" : "");
  72.     break;
  73.   case EnterNotify:
  74.   case LeaveNotify:
  75.     PRXEVSTD(event,xcrossing);
  76.     fprintf(stderr,XNEWLINE
  77.         "root: 0x%lx, subwin: 0x%lx, time: 0x%lx,"XNEWLINE
  78.         "pos(%d/%d), pos_root(%d/%d), Notify%s,"XNEWLINE
  79.         "Notify%s%s%s,"XNEWLINE
  80.         "state: 0x%x\n",
  81.         event->xcrossing.root,event->xcrossing.subwindow,
  82.         event->xcrossing.time,event->xcrossing.x,event->xcrossing.y,
  83.         event->xcrossing.x_root,event->xcrossing.y_root,
  84.         modeNames[event->xcrossing.mode],
  85.         detailNames[event->xcrossing.detail],
  86.         event->xcrossing.same_screen ? ", same_screen" : "",
  87.         event->xcrossing.focus ? ", focus" : "",
  88.         event->xcrossing.state);
  89.     break;
  90.   case FocusIn:
  91.   case FocusOut:
  92.     PRXEVSTD(event,xfocus);
  93.     fprintf(stderr,XNEWLINE
  94.         "Notify%s, Notify%s",
  95.         modeNames[event->xfocus.mode],detailNames[event->xfocus.detail]);
  96.     break;
  97.   case KeymapNotify:
  98.     PRXEVSTD(event,xkeymap);
  99.     fprintf(stderr,"\n");
  100.     break;
  101.   case Expose:
  102.     PRXEVSTD(event,xexpose);
  103.     fprintf(stderr,"\n");
  104.     break;
  105.   case GraphicsExpose:
  106.     PRXEVSTD(event,xgraphicsexpose);
  107.     fprintf(stderr,"\n");
  108.     break;
  109.   case NoExpose:
  110.     PRXEVSTD(event,xnoexpose);
  111.     fprintf(stderr,"\n");
  112.     break;
  113.   case VisibilityNotify:
  114.     PRXEVSTD(event,xvisibility);
  115.     fprintf(stderr,"\n");
  116.     break;
  117.   case CreateNotify:
  118.     PRXEVSTD(event,xcreatewindow);
  119.     fprintf(stderr,"\n");
  120.     break;
  121.   case DestroyNotify:
  122.     PRXEVSTD(event,xdestroywindow);
  123.     fprintf(stderr,"\n");
  124.     break;
  125.   case UnmapNotify:
  126.     PRXEVSTD(event,xunmap);
  127.     fprintf(stderr,"\n");
  128.     break;
  129.   case MapNotify:
  130.     PRXEVSTD(event,xmap);
  131.     fprintf(stderr,"\n");
  132.     break;
  133.   case MapRequest:
  134.     PRXEVSTD(event,xmaprequest);
  135.     fprintf(stderr,"\n");
  136.     break;
  137.   case ReparentNotify:
  138.     PRXEVSTD(event,xreparent);
  139.     fprintf(stderr,"\n");
  140.     break;
  141.   case ConfigureNotify:
  142.     PRXEVSTD(event,xconfigure);
  143.     fprintf(stderr,"\n");
  144.     break;
  145.   case ConfigureRequest:
  146.     PRXEVSTD(event,xconfigurerequest);
  147.     fprintf(stderr,"\n");
  148.     break;
  149.   case GravityNotify:
  150.     PRXEVSTD(event,xgravity);
  151.     fprintf(stderr,"\n");
  152.     break;
  153.   case ResizeRequest:
  154.     PRXEVSTD(event,xresizerequest);
  155.     fprintf(stderr,"\n");
  156.     break;
  157.   case CirculateNotify:
  158.     PRXEVSTD(event,xcirculate);
  159.     fprintf(stderr,"\n");
  160.     break;
  161.   case CirculateRequest:
  162.     PRXEVSTD(event,xcirculaterequest);
  163.     fprintf(stderr,"\n");
  164.     break;
  165.   case PropertyNotify:
  166.     PRXEVSTD(event,xproperty);
  167.     fprintf(stderr,"\n");
  168.     break;
  169.   case SelectionClear:
  170.     PRXEVSTD(event,xselectionclear);
  171.     fprintf(stderr,"\n");
  172.     break;
  173.   case SelectionRequest:
  174.     PRXEVSTD(event,xselectionrequest);
  175.     fprintf(stderr,"\n");
  176.     break;
  177.   case SelectionNotify:
  178.     PRXEVSTD(event,xselection);
  179.     fprintf(stderr,"\n");
  180.     break;
  181.   case ColormapNotify:
  182.     PRXEVSTD(event,xcolormap);
  183.     fprintf(stderr,"\n");
  184.     break;
  185.   case ClientMessage:
  186.     PRXEVSTD(event,xclient);
  187.     fprintf(stderr,"\n");
  188.     break;
  189.   case MappingNotify:
  190.     PRXEVSTD(event,xmapping);
  191.     fprintf(stderr,"\n");
  192.     break;
  193.   default:
  194.     fprintf(stderr,"Unknown event type %d\n",event->type);
  195.     break; }
  196.   return;
  197.  
  198. #undef PRXEVSTD
  199. #undef XNEWLINE
  200. }
  201. #endif
  202.  
  203. int main(int argc,char *argv[])
  204. {
  205.   FD_board *fd_board;
  206.   XEvent   event;
  207.  
  208.   fl_initialize(argv[0],"Shanghai",0,0,&argc,argv);
  209.   fd_board = new_board();
  210.   for (;;)
  211.     if (fl_do_forms() == FL_EVENT) {
  212.       fl_XNextEvent(&event);
  213.       fl_print_xevent_name("",&event); }
  214.   return(0);
  215. }
  216.